(function($, window, document) {
    function Carousel(option) {
        if(!option.element) {
            throw new Error("根节点都没有，玩个锤子")
        } else {
            this.element = $(option.element) // 根节点
        }
        this.option = {
            auto: option.auto || false, // 是否自动轮播
            controls: option.controls || false, // 小圆点控制
            Lrbtn: option.Lrbtn || true // 左右按钮
        }
        this.index
        this.li_width
        this.flag = true
        this.init()
        if(this.option.Lrbtn) {
            this.LRbtn()
        }
    }
    // 初始化
    Carousel.prototype.init = function() {
        // dom拷贝，一前一后
        var $first_img = this.element.find(".inner > li:first").clone(true);
        var $last_img = this.element.find(".inner > li:last").clone(true);
        this.element.find(".inner").append($first_img); // ul后面插入
        this.element.find(".inner").prepend($last_img); // ul前面插入
        // 下标
        this.index = 1;
        // 宽度
        this.li_width = $first_img.width() // 520px
        // 克隆后的偏移
        this.element.find(".inner").css({
            "marginLeft": -this.index * this.li_width
        })
    }
    // 点击按钮
    Carousel.prototype.LRbtn = function() {
        var self = this;
        self.element.find(".rightBtn").on('click', function() {
            if(self.flag == false) {
                return;
            }
            self.flag = false; // 开关，防止点击过快出现快速滑动
            self.index++;
            self.element.find(".inner").animate({
                "marginLeft": -self.index * self.li_width
            }, 1000, function() { // 回调函数
                self.flag = true
                console.log(self.index, this.childElementCount, $(this))
                if(self.index >= this.childElementCount - 1) {
                    self.index = 1;
                    $(this).css({
                        "marginLeft": -1 * self.index * self.li_width
                    });
                }
            })

        })
        self.element.find(".leftBtn").on('click', function() {
            if(self.flag == false) {
                return;
            }
            self.flag = false; // 开关，防止点击过快出现快速滑动
            self.index--;
            self.element.find(".inner").animate({
                "marginLeft": -self.index * self.li_width
            }, 1000, function() { // 回调函数
                self.flag = true
                console.log(self.index, this.childElementCount, $(this))
                if(self.index <= 0) {
                    self.index = this.childElementCount - 1;
                    $(this).css({
                        "marginLeft": -1 * (self.index * self.li_width)
                    });
                }
            })

        })
    }
    //暴露轮播图对象
    window.Carousel = Carousel
})(jQuery, window, document)
